package com.radiant.data.entity;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.radiant.data.annotation.Persist;

/**
 * All items that can show up on a person's wall should derive from this class
 * Such items will have the ability to have comments or likes added to them 
 * @author karthikk
 *
 */
public abstract class WallEntity {

	@Persist(name = "timeCreated")
	private Date timeCreated;
	@Persist(name = "timeUpdated")
	private Date timeUpdated;
	@Persist(name = "comments", multiValue = true, complex = true, multiValueType = Comment.class)
	private List<Comment> comments = new ArrayList<Comment>();
	@Persist(name = "likes", multiValue = true, multiValueType = Like.class)
	private List<Like> likes = new ArrayList<Like>();

	public WallEntity() {
		super();
	}

	public Date getTimeCreated() {
		return timeCreated;
	}

	public void setTimeCreated(Date timeCreated) {
		this.timeCreated = timeCreated;
	}

	public Date getTimeUpdated() {
		return timeUpdated;
	}

	public void setTimeUpdated(Date timeUpdated) {
		this.timeUpdated = timeUpdated;
	}

	public List<Comment> getComments() {
		return comments;
	}

	public void setComments(List<Comment> comments) {
		this.comments = comments;
	}

	public List<Like> getLikes() {
		return likes;
	}

	public void setLikes(List<Like> likes) {
		this.likes = likes;
	}

}